{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@mui/utils\";\nvar _span;\nconst _excluded = [\"aria-describedby\", \"aria-label\", \"autoFocus\", \"autoWidth\", \"children\", \"className\", \"defaultOpen\", \"defaultValue\", \"disabled\", \"displayEmpty\", \"IconComponent\", \"inputRef\", \"labelId\", \"MenuProps\", \"multiple\", \"name\", \"onBlur\", \"onChange\", \"onClose\", \"onFocus\", \"onOpen\", \"open\", \"readOnly\", \"renderValue\", \"SelectDisplayProps\", \"tabIndex\", \"type\", \"value\", \"variant\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { refType } from '@mui/utils';\nimport ownerDocument from '../utils/ownerDocument';\nimport capitalize from '../utils/capitalize';\nimport Menu from '../Menu/Menu';\nimport { nativeSelectSelectStyles, nativeSelectIconStyles } from '../NativeSelect/NativeSelectInput';\nimport { isFilled } from '../InputBase/utils';\nimport styled, { slotShouldForwardProp } from '../styles/styled';\nimport useForkRef from '../utils/useForkRef';\nimport useControlled from '../utils/useControlled';\nimport selectClasses, { getSelectUtilityClasses } from './selectClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst SelectSelect = styled('div', {\n  name: 'MuiSelect',\n  slot: 'Select',\n  overridesResolver: (props, styles) => {\n    const {\n      ownerState\n    } = props;\n    return [\n    // Win specificity over the input base\n    {\n      [`&.${selectClasses.select}`]: styles.select\n    }, {\n      [`&.${selectClasses.select}`]: styles[ownerState.variant]\n    }, {\n      [`&.${selectClasses.multiple}`]: styles.multiple\n    }];\n  }\n})(nativeSelectSelectStyles, {\n  // Win specificity over the input base\n  [`&.${selectClasses.select}`]: {\n    height: 'auto',\n    // Resets for multiple select with chips\n    minHeight: '1.4375em',\n    // Required for select\\text-field height consistency\n    textOverflow: 'ellipsis',\n    whiteSpace: 'nowrap',\n    overflow: 'hidden'\n  }\n});\nconst SelectIcon = styled('svg', {\n  name: 'MuiSelect',\n  slot: 'Icon',\n  overridesResolver: (props, styles) => {\n    const {\n      ownerState\n    } = props;\n    return [styles.icon, ownerState.variant && styles[`icon${capitalize(ownerState.variant)}`], ownerState.open && styles.iconOpen];\n  }\n})(nativeSelectIconStyles);\nconst SelectNativeInput = styled('input', {\n  shouldForwardProp: prop => slotShouldForwardProp(prop) && prop !== 'classes',\n  name: 'MuiSelect',\n  slot: 'NativeInput',\n  overridesResolver: (props, styles) => styles.nativeInput\n})({\n  bottom: 0,\n  left: 0,\n  position: 'absolute',\n  opacity: 0,\n  pointerEvents: 'none',\n  width: '100%',\n  boxSizing: 'border-box'\n});\nfunction areEqualValues(a, b) {\n  if (typeof b === 'object' && b !== null) {\n    return a === b;\n  }\n\n  // The value could be a number, the DOM will stringify it anyway.\n  return String(a) === String(b);\n}\nfunction isEmpty(display) {\n  return display == null || typeof display === 'string' && !display.trim();\n}\nconst useUtilityClasses = ownerState => {\n  const {\n    classes,\n    variant,\n    disabled,\n    multiple,\n    open\n  } = ownerState;\n  const slots = {\n    select: ['select', variant, disabled && 'disabled', multiple && 'multiple'],\n    icon: ['icon', `icon${capitalize(variant)}`, open && 'iconOpen', disabled && 'disabled'],\n    nativeInput: ['nativeInput']\n  };\n  return composeClasses(slots, getSelectUtilityClasses, classes);\n};\n\n/**\n * @ignore - internal component.\n */\nconst SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, ref) {\n  const {\n      'aria-describedby': ariaDescribedby,\n      'aria-label': ariaLabel,\n      autoFocus,\n      autoWidth,\n      children,\n      className,\n      defaultOpen,\n      defaultValue,\n      disabled,\n      displayEmpty,\n      IconComponent,\n      inputRef: inputRefProp,\n      labelId,\n      MenuProps = {},\n      multiple,\n      name,\n      onBlur,\n      onChange,\n      onClose,\n      onFocus,\n      onOpen,\n      open: openProp,\n      readOnly,\n      renderValue,\n      SelectDisplayProps = {},\n      tabIndex: tabIndexProp,\n      value: valueProp,\n      variant = 'standard'\n    } = props,\n    other = _objectWithoutPropertiesLoose(props, _excluded);\n  const [value, setValueState] = useControlled({\n    controlled: valueProp,\n    default: defaultValue,\n    name: 'Select'\n  });\n  const [openState, setOpenState] = useControlled({\n    controlled: openProp,\n    default: defaultOpen,\n    name: 'Select'\n  });\n  const inputRef = React.useRef(null);\n  const displayRef = React.useRef(null);\n  const [displayNode, setDisplayNode] = React.useState(null);\n  const {\n    current: isOpenControlled\n  } = React.useRef(openProp != null);\n  const [menuMinWidthState, setMenuMinWidthState] = React.useState();\n  const handleRef = useForkRef(ref, inputRefProp);\n  const handleDisplayRef = React.useCallback(node => {\n    displayRef.current = node;\n    if (node) {\n      setDisplayNode(node);\n    }\n  }, []);\n  React.useImperativeHandle(handleRef, () => ({\n    focus: () => {\n      displayRef.current.focus();\n    },\n    node: inputRef.current,\n    value\n  }), [value]);\n\n  // Resize menu on `defaultOpen` automatic toggle.\n  React.useEffect(() => {\n    if (defaultOpen && openState && displayNode && !isOpenControlled) {\n      setMenuMinWidthState(autoWidth ? null : displayNode.clientWidth);\n      displayRef.current.focus();\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [displayNode, autoWidth]);\n  // `isOpenControlled` is ignored because the component should never switch between controlled and uncontrolled modes.\n  // `defaultOpen` and `openState` are ignored to avoid unnecessary callbacks.\n  React.useEffect(() => {\n    if (autoFocus) {\n      displayRef.current.focus();\n    }\n  }, [autoFocus]);\n  React.useEffect(() => {\n    if (!labelId) {\n      return undefined;\n    }\n    const label = ownerDocument(displayRef.current).getElementById(labelId);\n    if (label) {\n      const handler = () => {\n        if (getSelection().isCollapsed) {\n          displayRef.current.focus();\n        }\n      };\n      label.addEventListener('click', handler);\n      return () => {\n        label.removeEventListener('click', handler);\n      };\n    }\n    return undefined;\n  }, [labelId]);\n  const update = (open, event) => {\n    if (open) {\n      if (onOpen) {\n        onOpen(event);\n      }\n    } else if (onClose) {\n      onClose(event);\n    }\n    if (!isOpenControlled) {\n      setMenuMinWidthState(autoWidth ? null : displayNode.clientWidth);\n      setOpenState(open);\n    }\n  };\n  const handleMouseDown = event => {\n    // Ignore everything but left-click\n    if (event.button !== 0) {\n      return;\n    }\n    // Hijack the default focus behavior.\n    event.preventDefault();\n    displayRef.current.focus();\n    update(true, event);\n  };\n  const handleClose = event => {\n    update(false, event);\n  };\n  const childrenArray = React.Children.toArray(children);\n\n  // Support autofill.\n  const handleChange = event => {\n    const index = childrenArray.map(child => child.props.value).indexOf(event.target.value);\n    if (index === -1) {\n      return;\n    }\n    const child = childrenArray[index];\n    setValueState(child.props.value);\n    if (onChange) {\n      onChange(event, child);\n    }\n  };\n  const handleItemClick = child => event => {\n    let newValue;\n\n    // We use the tabindex attribute to signal the available options.\n    if (!event.currentTarget.hasAttribute('tabindex')) {\n      return;\n    }\n    if (multiple) {\n      newValue = Array.isArray(value) ? value.slice() : [];\n      const itemIndex = value.indexOf(child.props.value);\n      if (itemIndex === -1) {\n        newValue.push(child.props.value);\n      } else {\n        newValue.splice(itemIndex, 1);\n      }\n    } else {\n      newValue = child.props.value;\n    }\n    if (child.props.onClick) {\n      child.props.onClick(event);\n    }\n    if (value !== newValue) {\n      setValueState(newValue);\n      if (onChange) {\n        // Redefine target to allow name and value to be read.\n        // This allows seamless integration with the most popular form libraries.\n        // https://github.com/mui/material-ui/issues/13485#issuecomment-676048492\n        // Clone the event to not override `target` of the original event.\n        const nativeEvent = event.nativeEvent || event;\n        const clonedEvent = new nativeEvent.constructor(nativeEvent.type, nativeEvent);\n        Object.defineProperty(clonedEvent, 'target', {\n          writable: true,\n          value: {\n            value: newValue,\n            name\n          }\n        });\n        onChange(clonedEvent, child);\n      }\n    }\n    if (!multiple) {\n      update(false, event);\n    }\n  };\n  const handleKeyDown = event => {\n    if (!readOnly) {\n      const validKeys = [' ', 'ArrowUp', 'ArrowDown',\n      // The native select doesn't respond to enter on macOS, but it's recommended by\n      // https://www.w3.org/WAI/ARIA/apg/example-index/combobox/combobox-select-only.html\n      'Enter'];\n      if (validKeys.indexOf(event.key) !== -1) {\n        event.preventDefault();\n        update(true, event);\n      }\n    }\n  };\n  const open = displayNode !== null && openState;\n  const handleBlur = event => {\n    // if open event.stopImmediatePropagation\n    if (!open && onBlur) {\n      // Preact support, target is read only property on a native event.\n      Object.defineProperty(event, 'target', {\n        writable: true,\n        value: {\n          value,\n          name\n        }\n      });\n      onBlur(event);\n    }\n  };\n  delete other['aria-invalid'];\n  let display;\n  let displaySingle;\n  const displayMultiple = [];\n  let computeDisplay = false;\n  let foundMatch = false;\n\n  // No need to display any value if the field is empty.\n  if (isFilled({\n    value\n  }) || displayEmpty) {\n    if (renderValue) {\n      display = renderValue(value);\n    } else {\n      computeDisplay = true;\n    }\n  }\n  const items = childrenArray.map((child, index, arr) => {\n    if (! /*#__PURE__*/React.isValidElement(child)) {\n      return null;\n    }\n    if (process.env.NODE_ENV !== 'production') {\n      if (isFragment(child)) {\n        console.error([\"MUI: The Select component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n      }\n    }\n    let selected;\n    if (multiple) {\n      if (!Array.isArray(value)) {\n        throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The \\`value\\` prop must be an array when using the \\`Select\\` component with \\`multiple\\`.` : _formatMuiErrorMessage(2));\n      }\n      selected = value.some(v => areEqualValues(v, child.props.value));\n      if (selected && computeDisplay) {\n        displayMultiple.push(child.props.children);\n      }\n    } else {\n      selected = areEqualValues(value, child.props.value);\n      if (selected && computeDisplay) {\n        displaySingle = child.props.children;\n      }\n    }\n    if (selected) {\n      foundMatch = true;\n    }\n    if (child.props.value === undefined) {\n      return /*#__PURE__*/React.cloneElement(child, {\n        'aria-readonly': true,\n        role: 'option'\n      });\n    }\n    const isFirstSelectableElement = () => {\n      if (value) {\n        return selected;\n      }\n      const firstSelectableElement = arr.find(item => item.props.value !== undefined && item.props.disabled !== true);\n      if (child === firstSelectableElement) {\n        return true;\n      }\n      return selected;\n    };\n    return /*#__PURE__*/React.cloneElement(child, {\n      'aria-selected': selected ? 'true' : 'false',\n      onClick: handleItemClick(child),\n      onKeyUp: event => {\n        if (event.key === ' ') {\n          // otherwise our MenuItems dispatches a click event\n          // it's not behavior of the native <option> and causes\n          // the select to close immediately since we open on space keydown\n          event.preventDefault();\n        }\n        if (child.props.onKeyUp) {\n          child.props.onKeyUp(event);\n        }\n      },\n      role: 'option',\n      selected: arr[0].props.value === undefined || arr[0].props.disabled === true ? isFirstSelectableElement() : selected,\n      value: undefined,\n      // The value is most likely not a valid HTML attribute.\n      'data-value': child.props.value // Instead, we provide it as a data attribute.\n    });\n  });\n\n  if (process.env.NODE_ENV !== 'production') {\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    React.useEffect(() => {\n      if (!foundMatch && !multiple && value !== '') {\n        const values = childrenArray.map(child => child.props.value);\n        console.warn([`MUI: You have provided an out-of-range value \\`${value}\\` for the select ${name ? `(name=\"${name}\") ` : ''}component.`, \"Consider providing a value that matches one of the available options or ''.\", `The available values are ${values.filter(x => x != null).map(x => `\\`${x}\\``).join(', ') || '\"\"'}.`].join('\\n'));\n      }\n    }, [foundMatch, childrenArray, multiple, name, value]);\n  }\n  if (computeDisplay) {\n    if (multiple) {\n      if (displayMultiple.length === 0) {\n        display = null;\n      } else {\n        display = displayMultiple.reduce((output, child, index) => {\n          output.push(child);\n          if (index < displayMultiple.length - 1) {\n            output.push(', ');\n          }\n          return output;\n        }, []);\n      }\n    } else {\n      display = displaySingle;\n    }\n  }\n\n  // Avoid performing a layout computation in the render method.\n  let menuMinWidth = menuMinWidthState;\n  if (!autoWidth && isOpenControlled && displayNode) {\n    menuMinWidth = displayNode.clientWidth;\n  }\n  let tabIndex;\n  if (typeof tabIndexProp !== 'undefined') {\n    tabIndex = tabIndexProp;\n  } else {\n    tabIndex = disabled ? null : 0;\n  }\n  const buttonId = SelectDisplayProps.id || (name ? `mui-component-select-${name}` : undefined);\n  const ownerState = _extends({}, props, {\n    variant,\n    value,\n    open\n  });\n  const classes = useUtilityClasses(ownerState);\n  return /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(SelectSelect, _extends({\n      ref: handleDisplayRef,\n      tabIndex: tabIndex,\n      role: \"button\",\n      \"aria-disabled\": disabled ? 'true' : undefined,\n      \"aria-expanded\": open ? 'true' : 'false',\n      \"aria-haspopup\": \"listbox\",\n      \"aria-label\": ariaLabel,\n      \"aria-labelledby\": [labelId, buttonId].filter(Boolean).join(' ') || undefined,\n      \"aria-describedby\": ariaDescribedby,\n      onKeyDown: handleKeyDown,\n      onMouseDown: disabled || readOnly ? null : handleMouseDown,\n      onBlur: handleBlur,\n      onFocus: onFocus\n    }, SelectDisplayProps, {\n      ownerState: ownerState,\n      className: clsx(SelectDisplayProps.className, classes.select, className)\n      // The id is required for proper a11y\n      ,\n\n      id: buttonId,\n      children: isEmpty(display) ?\n      // notranslate needed while Google Translate will not fix zero-width space issue\n      _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n        className: \"notranslate\",\n        children: \"\\u200B\"\n      })) : display\n    })), /*#__PURE__*/_jsx(SelectNativeInput, _extends({\n      value: Array.isArray(value) ? value.join(',') : value,\n      name: name,\n      ref: inputRef,\n      \"aria-hidden\": true,\n      onChange: handleChange,\n      tabIndex: -1,\n      disabled: disabled,\n      className: classes.nativeInput,\n      autoFocus: autoFocus,\n      ownerState: ownerState\n    }, other)), /*#__PURE__*/_jsx(SelectIcon, {\n      as: IconComponent,\n      className: classes.icon,\n      ownerState: ownerState\n    }), /*#__PURE__*/_jsx(Menu, _extends({\n      id: `menu-${name || ''}`,\n      anchorEl: displayNode,\n      open: open,\n      onClose: handleClose,\n      anchorOrigin: {\n        vertical: 'bottom',\n        horizontal: 'center'\n      },\n      transformOrigin: {\n        vertical: 'top',\n        horizontal: 'center'\n      }\n    }, MenuProps, {\n      MenuListProps: _extends({\n        'aria-labelledby': labelId,\n        role: 'listbox',\n        disableListWrap: true\n      }, MenuProps.MenuListProps),\n      PaperProps: _extends({}, MenuProps.PaperProps, {\n        style: _extends({\n          minWidth: menuMinWidth\n        }, MenuProps.PaperProps != null ? MenuProps.PaperProps.style : null)\n      }),\n      children: items\n    }))]\n  });\n});\nprocess.env.NODE_ENV !== \"production\" ? SelectInput.propTypes = {\n  /**\n   * @ignore\n   */\n  'aria-describedby': PropTypes.string,\n  /**\n   * @ignore\n   */\n  'aria-label': PropTypes.string,\n  /**\n   * @ignore\n   */\n  autoFocus: PropTypes.bool,\n  /**\n   * If `true`, the width of the popover will automatically be set according to the items inside the\n   * menu, otherwise it will be at least the width of the select input.\n   */\n  autoWidth: PropTypes.bool,\n  /**\n   * The option elements to populate the select with.\n   * Can be some `<MenuItem>` elements.\n   */\n  children: PropTypes.node,\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: PropTypes.object,\n  /**\n   * The CSS class name of the select element.\n   */\n  className: PropTypes.string,\n  /**\n   * If `true`, the component is toggled on mount. Use when the component open state is not controlled.\n   * You can only use it when the `native` prop is `false` (default).\n   */\n  defaultOpen: PropTypes.bool,\n  /**\n   * The default value. Use when the component is not controlled.\n   */\n  defaultValue: PropTypes.any,\n  /**\n   * If `true`, the select is disabled.\n   */\n  disabled: PropTypes.bool,\n  /**\n   * If `true`, the selected item is displayed even if its value is empty.\n   */\n  displayEmpty: PropTypes.bool,\n  /**\n   * The icon that displays the arrow.\n   */\n  IconComponent: PropTypes.elementType.isRequired,\n  /**\n   * Imperative handle implementing `{ value: T, node: HTMLElement, focus(): void }`\n   * Equivalent to `ref`\n   */\n  inputRef: refType,\n  /**\n   * The ID of an element that acts as an additional label. The Select will\n   * be labelled by the additional label and the selected value.\n   */\n  labelId: PropTypes.string,\n  /**\n   * Props applied to the [`Menu`](/material-ui/api/menu/) element.\n   */\n  MenuProps: PropTypes.object,\n  /**\n   * If `true`, `value` must be an array and the menu will support multiple selections.\n   */\n  multiple: PropTypes.bool,\n  /**\n   * Name attribute of the `select` or hidden `input` element.\n   */\n  name: PropTypes.string,\n  /**\n   * @ignore\n   */\n  onBlur: PropTypes.func,\n  /**\n   * Callback fired when a menu item is selected.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value` (any).\n   * @param {object} [child] The react element that was selected.\n   */\n  onChange: PropTypes.func,\n  /**\n   * Callback fired when the component requests to be closed.\n   * Use in controlled mode (see open).\n   *\n   * @param {object} event The event source of the callback.\n   */\n  onClose: PropTypes.func,\n  /**\n   * @ignore\n   */\n  onFocus: PropTypes.func,\n  /**\n   * Callback fired when the component requests to be opened.\n   * Use in controlled mode (see open).\n   *\n   * @param {object} event The event source of the callback.\n   */\n  onOpen: PropTypes.func,\n  /**\n   * If `true`, the component is shown.\n   */\n  open: PropTypes.bool,\n  /**\n   * @ignore\n   */\n  readOnly: PropTypes.bool,\n  /**\n   * Render the selected value.\n   *\n   * @param {any} value The `value` provided to the component.\n   * @returns {ReactNode}\n   */\n  renderValue: PropTypes.func,\n  /**\n   * Props applied to the clickable div element.\n   */\n  SelectDisplayProps: PropTypes.object,\n  /**\n   * @ignore\n   */\n  tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n  /**\n   * @ignore\n   */\n  type: PropTypes.any,\n  /**\n   * The input value.\n   */\n  value: PropTypes.any,\n  /**\n   * The variant to use.\n   */\n  variant: PropTypes.oneOf(['standard', 'outlined', 'filled'])\n} : void 0;\nexport default SelectInput;","map":{"version":3,"names":["_extends","_objectWithoutPropertiesLoose","formatMuiErrorMessage","_formatMuiErrorMessage","_span","_excluded","React","isFragment","PropTypes","clsx","unstable_composeClasses","composeClasses","refType","ownerDocument","capitalize","Menu","nativeSelectSelectStyles","nativeSelectIconStyles","isFilled","styled","slotShouldForwardProp","useForkRef","useControlled","selectClasses","getSelectUtilityClasses","jsx","_jsx","jsxs","_jsxs","SelectSelect","name","slot","overridesResolver","props","styles","ownerState","select","variant","multiple","height","minHeight","textOverflow","whiteSpace","overflow","SelectIcon","icon","open","iconOpen","SelectNativeInput","shouldForwardProp","prop","nativeInput","bottom","left","position","opacity","pointerEvents","width","boxSizing","areEqualValues","a","b","String","isEmpty","display","trim","useUtilityClasses","classes","disabled","slots","SelectInput","forwardRef","ref","ariaDescribedby","ariaLabel","autoFocus","autoWidth","children","className","defaultOpen","defaultValue","displayEmpty","IconComponent","inputRef","inputRefProp","labelId","MenuProps","onBlur","onChange","onClose","onFocus","onOpen","openProp","readOnly","renderValue","SelectDisplayProps","tabIndex","tabIndexProp","value","valueProp","other","setValueState","controlled","default","openState","setOpenState","useRef","displayRef","displayNode","setDisplayNode","useState","current","isOpenControlled","menuMinWidthState","setMenuMinWidthState","handleRef","handleDisplayRef","useCallback","node","useImperativeHandle","focus","useEffect","clientWidth","undefined","label","getElementById","handler","getSelection","isCollapsed","addEventListener","removeEventListener","update","event","handleMouseDown","button","preventDefault","handleClose","childrenArray","Children","toArray","handleChange","index","map","child","indexOf","target","handleItemClick","newValue","currentTarget","hasAttribute","Array","isArray","slice","itemIndex","push","splice","onClick","nativeEvent","clonedEvent","constructor","type","Object","defineProperty","writable","handleKeyDown","validKeys","key","handleBlur","displaySingle","displayMultiple","computeDisplay","foundMatch","items","arr","isValidElement","process","env","NODE_ENV","console","error","join","selected","Error","some","v","cloneElement","role","isFirstSelectableElement","firstSelectableElement","find","item","onKeyUp","values","warn","filter","x","length","reduce","output","menuMinWidth","buttonId","id","Fragment","Boolean","onKeyDown","onMouseDown","as","anchorEl","anchorOrigin","vertical","horizontal","transformOrigin","MenuListProps","disableListWrap","PaperProps","style","minWidth","propTypes","string","bool","object","any","elementType","isRequired","func","oneOfType","number","oneOf"],"sources":["/data/messenger.client/node_modules/@mui/material/esm/Select/SelectInput.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@mui/utils\";\nvar _span;\nconst _excluded = [\"aria-describedby\", \"aria-label\", \"autoFocus\", \"autoWidth\", \"children\", \"className\", \"defaultOpen\", \"defaultValue\", \"disabled\", \"displayEmpty\", \"IconComponent\", \"inputRef\", \"labelId\", \"MenuProps\", \"multiple\", \"name\", \"onBlur\", \"onChange\", \"onClose\", \"onFocus\", \"onOpen\", \"open\", \"readOnly\", \"renderValue\", \"SelectDisplayProps\", \"tabIndex\", \"type\", \"value\", \"variant\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { refType } from '@mui/utils';\nimport ownerDocument from '../utils/ownerDocument';\nimport capitalize from '../utils/capitalize';\nimport Menu from '../Menu/Menu';\nimport { nativeSelectSelectStyles, nativeSelectIconStyles } from '../NativeSelect/NativeSelectInput';\nimport { isFilled } from '../InputBase/utils';\nimport styled, { slotShouldForwardProp } from '../styles/styled';\nimport useForkRef from '../utils/useForkRef';\nimport useControlled from '../utils/useControlled';\nimport selectClasses, { getSelectUtilityClasses } from './selectClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst SelectSelect = styled('div', {\n  name: 'MuiSelect',\n  slot: 'Select',\n  overridesResolver: (props, styles) => {\n    const {\n      ownerState\n    } = props;\n    return [\n    // Win specificity over the input base\n    {\n      [`&.${selectClasses.select}`]: styles.select\n    }, {\n      [`&.${selectClasses.select}`]: styles[ownerState.variant]\n    }, {\n      [`&.${selectClasses.multiple}`]: styles.multiple\n    }];\n  }\n})(nativeSelectSelectStyles, {\n  // Win specificity over the input base\n  [`&.${selectClasses.select}`]: {\n    height: 'auto',\n    // Resets for multiple select with chips\n    minHeight: '1.4375em',\n    // Required for select\\text-field height consistency\n    textOverflow: 'ellipsis',\n    whiteSpace: 'nowrap',\n    overflow: 'hidden'\n  }\n});\nconst SelectIcon = styled('svg', {\n  name: 'MuiSelect',\n  slot: 'Icon',\n  overridesResolver: (props, styles) => {\n    const {\n      ownerState\n    } = props;\n    return [styles.icon, ownerState.variant && styles[`icon${capitalize(ownerState.variant)}`], ownerState.open && styles.iconOpen];\n  }\n})(nativeSelectIconStyles);\nconst SelectNativeInput = styled('input', {\n  shouldForwardProp: prop => slotShouldForwardProp(prop) && prop !== 'classes',\n  name: 'MuiSelect',\n  slot: 'NativeInput',\n  overridesResolver: (props, styles) => styles.nativeInput\n})({\n  bottom: 0,\n  left: 0,\n  position: 'absolute',\n  opacity: 0,\n  pointerEvents: 'none',\n  width: '100%',\n  boxSizing: 'border-box'\n});\nfunction areEqualValues(a, b) {\n  if (typeof b === 'object' && b !== null) {\n    return a === b;\n  }\n\n  // The value could be a number, the DOM will stringify it anyway.\n  return String(a) === String(b);\n}\nfunction isEmpty(display) {\n  return display == null || typeof display === 'string' && !display.trim();\n}\nconst useUtilityClasses = ownerState => {\n  const {\n    classes,\n    variant,\n    disabled,\n    multiple,\n    open\n  } = ownerState;\n  const slots = {\n    select: ['select', variant, disabled && 'disabled', multiple && 'multiple'],\n    icon: ['icon', `icon${capitalize(variant)}`, open && 'iconOpen', disabled && 'disabled'],\n    nativeInput: ['nativeInput']\n  };\n  return composeClasses(slots, getSelectUtilityClasses, classes);\n};\n\n/**\n * @ignore - internal component.\n */\nconst SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, ref) {\n  const {\n      'aria-describedby': ariaDescribedby,\n      'aria-label': ariaLabel,\n      autoFocus,\n      autoWidth,\n      children,\n      className,\n      defaultOpen,\n      defaultValue,\n      disabled,\n      displayEmpty,\n      IconComponent,\n      inputRef: inputRefProp,\n      labelId,\n      MenuProps = {},\n      multiple,\n      name,\n      onBlur,\n      onChange,\n      onClose,\n      onFocus,\n      onOpen,\n      open: openProp,\n      readOnly,\n      renderValue,\n      SelectDisplayProps = {},\n      tabIndex: tabIndexProp,\n      value: valueProp,\n      variant = 'standard'\n    } = props,\n    other = _objectWithoutPropertiesLoose(props, _excluded);\n  const [value, setValueState] = useControlled({\n    controlled: valueProp,\n    default: defaultValue,\n    name: 'Select'\n  });\n  const [openState, setOpenState] = useControlled({\n    controlled: openProp,\n    default: defaultOpen,\n    name: 'Select'\n  });\n  const inputRef = React.useRef(null);\n  const displayRef = React.useRef(null);\n  const [displayNode, setDisplayNode] = React.useState(null);\n  const {\n    current: isOpenControlled\n  } = React.useRef(openProp != null);\n  const [menuMinWidthState, setMenuMinWidthState] = React.useState();\n  const handleRef = useForkRef(ref, inputRefProp);\n  const handleDisplayRef = React.useCallback(node => {\n    displayRef.current = node;\n    if (node) {\n      setDisplayNode(node);\n    }\n  }, []);\n  React.useImperativeHandle(handleRef, () => ({\n    focus: () => {\n      displayRef.current.focus();\n    },\n    node: inputRef.current,\n    value\n  }), [value]);\n\n  // Resize menu on `defaultOpen` automatic toggle.\n  React.useEffect(() => {\n    if (defaultOpen && openState && displayNode && !isOpenControlled) {\n      setMenuMinWidthState(autoWidth ? null : displayNode.clientWidth);\n      displayRef.current.focus();\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [displayNode, autoWidth]);\n  // `isOpenControlled` is ignored because the component should never switch between controlled and uncontrolled modes.\n  // `defaultOpen` and `openState` are ignored to avoid unnecessary callbacks.\n  React.useEffect(() => {\n    if (autoFocus) {\n      displayRef.current.focus();\n    }\n  }, [autoFocus]);\n  React.useEffect(() => {\n    if (!labelId) {\n      return undefined;\n    }\n    const label = ownerDocument(displayRef.current).getElementById(labelId);\n    if (label) {\n      const handler = () => {\n        if (getSelection().isCollapsed) {\n          displayRef.current.focus();\n        }\n      };\n      label.addEventListener('click', handler);\n      return () => {\n        label.removeEventListener('click', handler);\n      };\n    }\n    return undefined;\n  }, [labelId]);\n  const update = (open, event) => {\n    if (open) {\n      if (onOpen) {\n        onOpen(event);\n      }\n    } else if (onClose) {\n      onClose(event);\n    }\n    if (!isOpenControlled) {\n      setMenuMinWidthState(autoWidth ? null : displayNode.clientWidth);\n      setOpenState(open);\n    }\n  };\n  const handleMouseDown = event => {\n    // Ignore everything but left-click\n    if (event.button !== 0) {\n      return;\n    }\n    // Hijack the default focus behavior.\n    event.preventDefault();\n    displayRef.current.focus();\n    update(true, event);\n  };\n  const handleClose = event => {\n    update(false, event);\n  };\n  const childrenArray = React.Children.toArray(children);\n\n  // Support autofill.\n  const handleChange = event => {\n    const index = childrenArray.map(child => child.props.value).indexOf(event.target.value);\n    if (index === -1) {\n      return;\n    }\n    const child = childrenArray[index];\n    setValueState(child.props.value);\n    if (onChange) {\n      onChange(event, child);\n    }\n  };\n  const handleItemClick = child => event => {\n    let newValue;\n\n    // We use the tabindex attribute to signal the available options.\n    if (!event.currentTarget.hasAttribute('tabindex')) {\n      return;\n    }\n    if (multiple) {\n      newValue = Array.isArray(value) ? value.slice() : [];\n      const itemIndex = value.indexOf(child.props.value);\n      if (itemIndex === -1) {\n        newValue.push(child.props.value);\n      } else {\n        newValue.splice(itemIndex, 1);\n      }\n    } else {\n      newValue = child.props.value;\n    }\n    if (child.props.onClick) {\n      child.props.onClick(event);\n    }\n    if (value !== newValue) {\n      setValueState(newValue);\n      if (onChange) {\n        // Redefine target to allow name and value to be read.\n        // This allows seamless integration with the most popular form libraries.\n        // https://github.com/mui/material-ui/issues/13485#issuecomment-676048492\n        // Clone the event to not override `target` of the original event.\n        const nativeEvent = event.nativeEvent || event;\n        const clonedEvent = new nativeEvent.constructor(nativeEvent.type, nativeEvent);\n        Object.defineProperty(clonedEvent, 'target', {\n          writable: true,\n          value: {\n            value: newValue,\n            name\n          }\n        });\n        onChange(clonedEvent, child);\n      }\n    }\n    if (!multiple) {\n      update(false, event);\n    }\n  };\n  const handleKeyDown = event => {\n    if (!readOnly) {\n      const validKeys = [' ', 'ArrowUp', 'ArrowDown',\n      // The native select doesn't respond to enter on macOS, but it's recommended by\n      // https://www.w3.org/WAI/ARIA/apg/example-index/combobox/combobox-select-only.html\n      'Enter'];\n      if (validKeys.indexOf(event.key) !== -1) {\n        event.preventDefault();\n        update(true, event);\n      }\n    }\n  };\n  const open = displayNode !== null && openState;\n  const handleBlur = event => {\n    // if open event.stopImmediatePropagation\n    if (!open && onBlur) {\n      // Preact support, target is read only property on a native event.\n      Object.defineProperty(event, 'target', {\n        writable: true,\n        value: {\n          value,\n          name\n        }\n      });\n      onBlur(event);\n    }\n  };\n  delete other['aria-invalid'];\n  let display;\n  let displaySingle;\n  const displayMultiple = [];\n  let computeDisplay = false;\n  let foundMatch = false;\n\n  // No need to display any value if the field is empty.\n  if (isFilled({\n    value\n  }) || displayEmpty) {\n    if (renderValue) {\n      display = renderValue(value);\n    } else {\n      computeDisplay = true;\n    }\n  }\n  const items = childrenArray.map((child, index, arr) => {\n    if (! /*#__PURE__*/React.isValidElement(child)) {\n      return null;\n    }\n    if (process.env.NODE_ENV !== 'production') {\n      if (isFragment(child)) {\n        console.error([\"MUI: The Select component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n      }\n    }\n    let selected;\n    if (multiple) {\n      if (!Array.isArray(value)) {\n        throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The \\`value\\` prop must be an array when using the \\`Select\\` component with \\`multiple\\`.` : _formatMuiErrorMessage(2));\n      }\n      selected = value.some(v => areEqualValues(v, child.props.value));\n      if (selected && computeDisplay) {\n        displayMultiple.push(child.props.children);\n      }\n    } else {\n      selected = areEqualValues(value, child.props.value);\n      if (selected && computeDisplay) {\n        displaySingle = child.props.children;\n      }\n    }\n    if (selected) {\n      foundMatch = true;\n    }\n    if (child.props.value === undefined) {\n      return /*#__PURE__*/React.cloneElement(child, {\n        'aria-readonly': true,\n        role: 'option'\n      });\n    }\n    const isFirstSelectableElement = () => {\n      if (value) {\n        return selected;\n      }\n      const firstSelectableElement = arr.find(item => item.props.value !== undefined && item.props.disabled !== true);\n      if (child === firstSelectableElement) {\n        return true;\n      }\n      return selected;\n    };\n    return /*#__PURE__*/React.cloneElement(child, {\n      'aria-selected': selected ? 'true' : 'false',\n      onClick: handleItemClick(child),\n      onKeyUp: event => {\n        if (event.key === ' ') {\n          // otherwise our MenuItems dispatches a click event\n          // it's not behavior of the native <option> and causes\n          // the select to close immediately since we open on space keydown\n          event.preventDefault();\n        }\n        if (child.props.onKeyUp) {\n          child.props.onKeyUp(event);\n        }\n      },\n      role: 'option',\n      selected: arr[0].props.value === undefined || arr[0].props.disabled === true ? isFirstSelectableElement() : selected,\n      value: undefined,\n      // The value is most likely not a valid HTML attribute.\n      'data-value': child.props.value // Instead, we provide it as a data attribute.\n    });\n  });\n\n  if (process.env.NODE_ENV !== 'production') {\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    React.useEffect(() => {\n      if (!foundMatch && !multiple && value !== '') {\n        const values = childrenArray.map(child => child.props.value);\n        console.warn([`MUI: You have provided an out-of-range value \\`${value}\\` for the select ${name ? `(name=\"${name}\") ` : ''}component.`, \"Consider providing a value that matches one of the available options or ''.\", `The available values are ${values.filter(x => x != null).map(x => `\\`${x}\\``).join(', ') || '\"\"'}.`].join('\\n'));\n      }\n    }, [foundMatch, childrenArray, multiple, name, value]);\n  }\n  if (computeDisplay) {\n    if (multiple) {\n      if (displayMultiple.length === 0) {\n        display = null;\n      } else {\n        display = displayMultiple.reduce((output, child, index) => {\n          output.push(child);\n          if (index < displayMultiple.length - 1) {\n            output.push(', ');\n          }\n          return output;\n        }, []);\n      }\n    } else {\n      display = displaySingle;\n    }\n  }\n\n  // Avoid performing a layout computation in the render method.\n  let menuMinWidth = menuMinWidthState;\n  if (!autoWidth && isOpenControlled && displayNode) {\n    menuMinWidth = displayNode.clientWidth;\n  }\n  let tabIndex;\n  if (typeof tabIndexProp !== 'undefined') {\n    tabIndex = tabIndexProp;\n  } else {\n    tabIndex = disabled ? null : 0;\n  }\n  const buttonId = SelectDisplayProps.id || (name ? `mui-component-select-${name}` : undefined);\n  const ownerState = _extends({}, props, {\n    variant,\n    value,\n    open\n  });\n  const classes = useUtilityClasses(ownerState);\n  return /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(SelectSelect, _extends({\n      ref: handleDisplayRef,\n      tabIndex: tabIndex,\n      role: \"button\",\n      \"aria-disabled\": disabled ? 'true' : undefined,\n      \"aria-expanded\": open ? 'true' : 'false',\n      \"aria-haspopup\": \"listbox\",\n      \"aria-label\": ariaLabel,\n      \"aria-labelledby\": [labelId, buttonId].filter(Boolean).join(' ') || undefined,\n      \"aria-describedby\": ariaDescribedby,\n      onKeyDown: handleKeyDown,\n      onMouseDown: disabled || readOnly ? null : handleMouseDown,\n      onBlur: handleBlur,\n      onFocus: onFocus\n    }, SelectDisplayProps, {\n      ownerState: ownerState,\n      className: clsx(SelectDisplayProps.className, classes.select, className)\n      // The id is required for proper a11y\n      ,\n      id: buttonId,\n      children: isEmpty(display) ? // notranslate needed while Google Translate will not fix zero-width space issue\n      _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n        className: \"notranslate\",\n        children: \"\\u200B\"\n      })) : display\n    })), /*#__PURE__*/_jsx(SelectNativeInput, _extends({\n      value: Array.isArray(value) ? value.join(',') : value,\n      name: name,\n      ref: inputRef,\n      \"aria-hidden\": true,\n      onChange: handleChange,\n      tabIndex: -1,\n      disabled: disabled,\n      className: classes.nativeInput,\n      autoFocus: autoFocus,\n      ownerState: ownerState\n    }, other)), /*#__PURE__*/_jsx(SelectIcon, {\n      as: IconComponent,\n      className: classes.icon,\n      ownerState: ownerState\n    }), /*#__PURE__*/_jsx(Menu, _extends({\n      id: `menu-${name || ''}`,\n      anchorEl: displayNode,\n      open: open,\n      onClose: handleClose,\n      anchorOrigin: {\n        vertical: 'bottom',\n        horizontal: 'center'\n      },\n      transformOrigin: {\n        vertical: 'top',\n        horizontal: 'center'\n      }\n    }, MenuProps, {\n      MenuListProps: _extends({\n        'aria-labelledby': labelId,\n        role: 'listbox',\n        disableListWrap: true\n      }, MenuProps.MenuListProps),\n      PaperProps: _extends({}, MenuProps.PaperProps, {\n        style: _extends({\n          minWidth: menuMinWidth\n        }, MenuProps.PaperProps != null ? MenuProps.PaperProps.style : null)\n      }),\n      children: items\n    }))]\n  });\n});\nprocess.env.NODE_ENV !== \"production\" ? SelectInput.propTypes = {\n  /**\n   * @ignore\n   */\n  'aria-describedby': PropTypes.string,\n  /**\n   * @ignore\n   */\n  'aria-label': PropTypes.string,\n  /**\n   * @ignore\n   */\n  autoFocus: PropTypes.bool,\n  /**\n   * If `true`, the width of the popover will automatically be set according to the items inside the\n   * menu, otherwise it will be at least the width of the select input.\n   */\n  autoWidth: PropTypes.bool,\n  /**\n   * The option elements to populate the select with.\n   * Can be some `<MenuItem>` elements.\n   */\n  children: PropTypes.node,\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: PropTypes.object,\n  /**\n   * The CSS class name of the select element.\n   */\n  className: PropTypes.string,\n  /**\n   * If `true`, the component is toggled on mount. Use when the component open state is not controlled.\n   * You can only use it when the `native` prop is `false` (default).\n   */\n  defaultOpen: PropTypes.bool,\n  /**\n   * The default value. Use when the component is not controlled.\n   */\n  defaultValue: PropTypes.any,\n  /**\n   * If `true`, the select is disabled.\n   */\n  disabled: PropTypes.bool,\n  /**\n   * If `true`, the selected item is displayed even if its value is empty.\n   */\n  displayEmpty: PropTypes.bool,\n  /**\n   * The icon that displays the arrow.\n   */\n  IconComponent: PropTypes.elementType.isRequired,\n  /**\n   * Imperative handle implementing `{ value: T, node: HTMLElement, focus(): void }`\n   * Equivalent to `ref`\n   */\n  inputRef: refType,\n  /**\n   * The ID of an element that acts as an additional label. The Select will\n   * be labelled by the additional label and the selected value.\n   */\n  labelId: PropTypes.string,\n  /**\n   * Props applied to the [`Menu`](/material-ui/api/menu/) element.\n   */\n  MenuProps: PropTypes.object,\n  /**\n   * If `true`, `value` must be an array and the menu will support multiple selections.\n   */\n  multiple: PropTypes.bool,\n  /**\n   * Name attribute of the `select` or hidden `input` element.\n   */\n  name: PropTypes.string,\n  /**\n   * @ignore\n   */\n  onBlur: PropTypes.func,\n  /**\n   * Callback fired when a menu item is selected.\n   *\n   * @param {object} event The event source of the callback.\n   * You can pull out the new value by accessing `event.target.value` (any).\n   * @param {object} [child] The react element that was selected.\n   */\n  onChange: PropTypes.func,\n  /**\n   * Callback fired when the component requests to be closed.\n   * Use in controlled mode (see open).\n   *\n   * @param {object} event The event source of the callback.\n   */\n  onClose: PropTypes.func,\n  /**\n   * @ignore\n   */\n  onFocus: PropTypes.func,\n  /**\n   * Callback fired when the component requests to be opened.\n   * Use in controlled mode (see open).\n   *\n   * @param {object} event The event source of the callback.\n   */\n  onOpen: PropTypes.func,\n  /**\n   * If `true`, the component is shown.\n   */\n  open: PropTypes.bool,\n  /**\n   * @ignore\n   */\n  readOnly: PropTypes.bool,\n  /**\n   * Render the selected value.\n   *\n   * @param {any} value The `value` provided to the component.\n   * @returns {ReactNode}\n   */\n  renderValue: PropTypes.func,\n  /**\n   * Props applied to the clickable div element.\n   */\n  SelectDisplayProps: PropTypes.object,\n  /**\n   * @ignore\n   */\n  tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n  /**\n   * @ignore\n   */\n  type: PropTypes.any,\n  /**\n   * The input value.\n   */\n  value: PropTypes.any,\n  /**\n   * The variant to use.\n   */\n  variant: PropTypes.oneOf(['standard', 'outlined', 'filled'])\n} : void 0;\nexport default SelectInput;"],"mappings":"AAAA,OAAOA,QAAQ,MAAM,oCAAoC;AACzD,OAAOC,6BAA6B,MAAM,yDAAyD;AACnG,SAASC,qBAAqB,IAAIC,sBAAsB,QAAQ,YAAY;AAC5E,IAAIC,KAAK;AACT,MAAMC,SAAS,GAAG,CAAC,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC;AAClY,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,UAAU,QAAQ,UAAU;AACrC,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,IAAI,MAAM,MAAM;AACvB,SAASC,uBAAuB,IAAIC,cAAc,QAAQ,WAAW;AACrE,SAASC,OAAO,QAAQ,YAAY;AACpC,OAAOC,aAAa,MAAM,wBAAwB;AAClD,OAAOC,UAAU,MAAM,qBAAqB;AAC5C,OAAOC,IAAI,MAAM,cAAc;AAC/B,SAASC,wBAAwB,EAAEC,sBAAsB,QAAQ,mCAAmC;AACpG,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,OAAOC,MAAM,IAAIC,qBAAqB,QAAQ,kBAAkB;AAChE,OAAOC,UAAU,MAAM,qBAAqB;AAC5C,OAAOC,aAAa,MAAM,wBAAwB;AAClD,OAAOC,aAAa,IAAIC,uBAAuB,QAAQ,iBAAiB;AACxE,SAASC,GAAG,IAAIC,IAAI,QAAQ,mBAAmB;AAC/C,SAASC,IAAI,IAAIC,KAAK,QAAQ,mBAAmB;AACjD,MAAMC,YAAY,GAAGV,MAAM,CAAC,KAAK,EAAE;EACjCW,IAAI,EAAE,WAAW;EACjBC,IAAI,EAAE,QAAQ;EACdC,iBAAiB,EAAE,CAACC,KAAK,EAAEC,MAAM,KAAK;IACpC,MAAM;MACJC;IACF,CAAC,GAAGF,KAAK;IACT,OAAO;IACP;IACA;MACE,CAAE,KAAIV,aAAa,CAACa,MAAO,EAAC,GAAGF,MAAM,CAACE;IACxC,CAAC,EAAE;MACD,CAAE,KAAIb,aAAa,CAACa,MAAO,EAAC,GAAGF,MAAM,CAACC,UAAU,CAACE,OAAO;IAC1D,CAAC,EAAE;MACD,CAAE,KAAId,aAAa,CAACe,QAAS,EAAC,GAAGJ,MAAM,CAACI;IAC1C,CAAC,CAAC;EACJ;AACF,CAAC,CAAC,CAACtB,wBAAwB,EAAE;EAC3B;EACA,CAAE,KAAIO,aAAa,CAACa,MAAO,EAAC,GAAG;IAC7BG,MAAM,EAAE,MAAM;IACd;IACAC,SAAS,EAAE,UAAU;IACrB;IACAC,YAAY,EAAE,UAAU;IACxBC,UAAU,EAAE,QAAQ;IACpBC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AACF,MAAMC,UAAU,GAAGzB,MAAM,CAAC,KAAK,EAAE;EAC/BW,IAAI,EAAE,WAAW;EACjBC,IAAI,EAAE,MAAM;EACZC,iBAAiB,EAAE,CAACC,KAAK,EAAEC,MAAM,KAAK;IACpC,MAAM;MACJC;IACF,CAAC,GAAGF,KAAK;IACT,OAAO,CAACC,MAAM,CAACW,IAAI,EAAEV,UAAU,CAACE,OAAO,IAAIH,MAAM,CAAE,OAAMpB,UAAU,CAACqB,UAAU,CAACE,OAAO,CAAE,EAAC,CAAC,EAAEF,UAAU,CAACW,IAAI,IAAIZ,MAAM,CAACa,QAAQ,CAAC;EACjI;AACF,CAAC,CAAC,CAAC9B,sBAAsB,CAAC;AAC1B,MAAM+B,iBAAiB,GAAG7B,MAAM,CAAC,OAAO,EAAE;EACxC8B,iBAAiB,EAAEC,IAAI,IAAI9B,qBAAqB,CAAC8B,IAAI,CAAC,IAAIA,IAAI,KAAK,SAAS;EAC5EpB,IAAI,EAAE,WAAW;EACjBC,IAAI,EAAE,aAAa;EACnBC,iBAAiB,EAAE,CAACC,KAAK,EAAEC,MAAM,KAAKA,MAAM,CAACiB;AAC/C,CAAC,CAAC,CAAC;EACDC,MAAM,EAAE,CAAC;EACTC,IAAI,EAAE,CAAC;EACPC,QAAQ,EAAE,UAAU;EACpBC,OAAO,EAAE,CAAC;EACVC,aAAa,EAAE,MAAM;EACrBC,KAAK,EAAE,MAAM;EACbC,SAAS,EAAE;AACb,CAAC,CAAC;AACF,SAASC,cAAc,CAACC,CAAC,EAAEC,CAAC,EAAE;EAC5B,IAAI,OAAOA,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,EAAE;IACvC,OAAOD,CAAC,KAAKC,CAAC;EAChB;;EAEA;EACA,OAAOC,MAAM,CAACF,CAAC,CAAC,KAAKE,MAAM,CAACD,CAAC,CAAC;AAChC;AACA,SAASE,OAAO,CAACC,OAAO,EAAE;EACxB,OAAOA,OAAO,IAAI,IAAI,IAAI,OAAOA,OAAO,KAAK,QAAQ,IAAI,CAACA,OAAO,CAACC,IAAI,EAAE;AAC1E;AACA,MAAMC,iBAAiB,GAAG/B,UAAU,IAAI;EACtC,MAAM;IACJgC,OAAO;IACP9B,OAAO;IACP+B,QAAQ;IACR9B,QAAQ;IACRQ;EACF,CAAC,GAAGX,UAAU;EACd,MAAMkC,KAAK,GAAG;IACZjC,MAAM,EAAE,CAAC,QAAQ,EAAEC,OAAO,EAAE+B,QAAQ,IAAI,UAAU,EAAE9B,QAAQ,IAAI,UAAU,CAAC;IAC3EO,IAAI,EAAE,CAAC,MAAM,EAAG,OAAM/B,UAAU,CAACuB,OAAO,CAAE,EAAC,EAAES,IAAI,IAAI,UAAU,EAAEsB,QAAQ,IAAI,UAAU,CAAC;IACxFjB,WAAW,EAAE,CAAC,aAAa;EAC7B,CAAC;EACD,OAAOxC,cAAc,CAAC0D,KAAK,EAAE7C,uBAAuB,EAAE2C,OAAO,CAAC;AAChE,CAAC;;AAED;AACA;AACA;AACA,MAAMG,WAAW,GAAG,aAAahE,KAAK,CAACiE,UAAU,CAAC,SAASD,WAAW,CAACrC,KAAK,EAAEuC,GAAG,EAAE;EACjF,MAAM;MACF,kBAAkB,EAAEC,eAAe;MACnC,YAAY,EAAEC,SAAS;MACvBC,SAAS;MACTC,SAAS;MACTC,QAAQ;MACRC,SAAS;MACTC,WAAW;MACXC,YAAY;MACZZ,QAAQ;MACRa,YAAY;MACZC,aAAa;MACbC,QAAQ,EAAEC,YAAY;MACtBC,OAAO;MACPC,SAAS,GAAG,CAAC,CAAC;MACdhD,QAAQ;MACRR,IAAI;MACJyD,MAAM;MACNC,QAAQ;MACRC,OAAO;MACPC,OAAO;MACPC,MAAM;MACN7C,IAAI,EAAE8C,QAAQ;MACdC,QAAQ;MACRC,WAAW;MACXC,kBAAkB,GAAG,CAAC,CAAC;MACvBC,QAAQ,EAAEC,YAAY;MACtBC,KAAK,EAAEC,SAAS;MAChB9D,OAAO,GAAG;IACZ,CAAC,GAAGJ,KAAK;IACTmE,KAAK,GAAGnG,6BAA6B,CAACgC,KAAK,EAAE5B,SAAS,CAAC;EACzD,MAAM,CAAC6F,KAAK,EAAEG,aAAa,CAAC,GAAG/E,aAAa,CAAC;IAC3CgF,UAAU,EAAEH,SAAS;IACrBI,OAAO,EAAEvB,YAAY;IACrBlD,IAAI,EAAE;EACR,CAAC,CAAC;EACF,MAAM,CAAC0E,SAAS,EAAEC,YAAY,CAAC,GAAGnF,aAAa,CAAC;IAC9CgF,UAAU,EAAEV,QAAQ;IACpBW,OAAO,EAAExB,WAAW;IACpBjD,IAAI,EAAE;EACR,CAAC,CAAC;EACF,MAAMqD,QAAQ,GAAG7E,KAAK,CAACoG,MAAM,CAAC,IAAI,CAAC;EACnC,MAAMC,UAAU,GAAGrG,KAAK,CAACoG,MAAM,CAAC,IAAI,CAAC;EACrC,MAAM,CAACE,WAAW,EAAEC,cAAc,CAAC,GAAGvG,KAAK,CAACwG,QAAQ,CAAC,IAAI,CAAC;EAC1D,MAAM;IACJC,OAAO,EAAEC;EACX,CAAC,GAAG1G,KAAK,CAACoG,MAAM,CAACd,QAAQ,IAAI,IAAI,CAAC;EAClC,MAAM,CAACqB,iBAAiB,EAAEC,oBAAoB,CAAC,GAAG5G,KAAK,CAACwG,QAAQ,EAAE;EAClE,MAAMK,SAAS,GAAG9F,UAAU,CAACmD,GAAG,EAAEY,YAAY,CAAC;EAC/C,MAAMgC,gBAAgB,GAAG9G,KAAK,CAAC+G,WAAW,CAACC,IAAI,IAAI;IACjDX,UAAU,CAACI,OAAO,GAAGO,IAAI;IACzB,IAAIA,IAAI,EAAE;MACRT,cAAc,CAACS,IAAI,CAAC;IACtB;EACF,CAAC,EAAE,EAAE,CAAC;EACNhH,KAAK,CAACiH,mBAAmB,CAACJ,SAAS,EAAE,OAAO;IAC1CK,KAAK,EAAE,MAAM;MACXb,UAAU,CAACI,OAAO,CAACS,KAAK,EAAE;IAC5B,CAAC;IACDF,IAAI,EAAEnC,QAAQ,CAAC4B,OAAO;IACtBb;EACF,CAAC,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;;EAEZ;EACA5F,KAAK,CAACmH,SAAS,CAAC,MAAM;IACpB,IAAI1C,WAAW,IAAIyB,SAAS,IAAII,WAAW,IAAI,CAACI,gBAAgB,EAAE;MAChEE,oBAAoB,CAACtC,SAAS,GAAG,IAAI,GAAGgC,WAAW,CAACc,WAAW,CAAC;MAChEf,UAAU,CAACI,OAAO,CAACS,KAAK,EAAE;IAC5B;IACA;EACF,CAAC,EAAE,CAACZ,WAAW,EAAEhC,SAAS,CAAC,CAAC;EAC5B;EACA;EACAtE,KAAK,CAACmH,SAAS,CAAC,MAAM;IACpB,IAAI9C,SAAS,EAAE;MACbgC,UAAU,CAACI,OAAO,CAACS,KAAK,EAAE;IAC5B;EACF,CAAC,EAAE,CAAC7C,SAAS,CAAC,CAAC;EACfrE,KAAK,CAACmH,SAAS,CAAC,MAAM;IACpB,IAAI,CAACpC,OAAO,EAAE;MACZ,OAAOsC,SAAS;IAClB;IACA,MAAMC,KAAK,GAAG/G,aAAa,CAAC8F,UAAU,CAACI,OAAO,CAAC,CAACc,cAAc,CAACxC,OAAO,CAAC;IACvE,IAAIuC,KAAK,EAAE;MACT,MAAME,OAAO,GAAG,MAAM;QACpB,IAAIC,YAAY,EAAE,CAACC,WAAW,EAAE;UAC9BrB,UAAU,CAACI,OAAO,CAACS,KAAK,EAAE;QAC5B;MACF,CAAC;MACDI,KAAK,CAACK,gBAAgB,CAAC,OAAO,EAAEH,OAAO,CAAC;MACxC,OAAO,MAAM;QACXF,KAAK,CAACM,mBAAmB,CAAC,OAAO,EAAEJ,OAAO,CAAC;MAC7C,CAAC;IACH;IACA,OAAOH,SAAS;EAClB,CAAC,EAAE,CAACtC,OAAO,CAAC,CAAC;EACb,MAAM8C,MAAM,GAAG,CAACrF,IAAI,EAAEsF,KAAK,KAAK;IAC9B,IAAItF,IAAI,EAAE;MACR,IAAI6C,MAAM,EAAE;QACVA,MAAM,CAACyC,KAAK,CAAC;MACf;IACF,CAAC,MAAM,IAAI3C,OAAO,EAAE;MAClBA,OAAO,CAAC2C,KAAK,CAAC;IAChB;IACA,IAAI,CAACpB,gBAAgB,EAAE;MACrBE,oBAAoB,CAACtC,SAAS,GAAG,IAAI,GAAGgC,WAAW,CAACc,WAAW,CAAC;MAChEjB,YAAY,CAAC3D,IAAI,CAAC;IACpB;EACF,CAAC;EACD,MAAMuF,eAAe,GAAGD,KAAK,IAAI;IAC/B;IACA,IAAIA,KAAK,CAACE,MAAM,KAAK,CAAC,EAAE;MACtB;IACF;IACA;IACAF,KAAK,CAACG,cAAc,EAAE;IACtB5B,UAAU,CAACI,OAAO,CAACS,KAAK,EAAE;IAC1BW,MAAM,CAAC,IAAI,EAAEC,KAAK,CAAC;EACrB,CAAC;EACD,MAAMI,WAAW,GAAGJ,KAAK,IAAI;IAC3BD,MAAM,CAAC,KAAK,EAAEC,KAAK,CAAC;EACtB,CAAC;EACD,MAAMK,aAAa,GAAGnI,KAAK,CAACoI,QAAQ,CAACC,OAAO,CAAC9D,QAAQ,CAAC;;EAEtD;EACA,MAAM+D,YAAY,GAAGR,KAAK,IAAI;IAC5B,MAAMS,KAAK,GAAGJ,aAAa,CAACK,GAAG,CAACC,KAAK,IAAIA,KAAK,CAAC9G,KAAK,CAACiE,KAAK,CAAC,CAAC8C,OAAO,CAACZ,KAAK,CAACa,MAAM,CAAC/C,KAAK,CAAC;IACvF,IAAI2C,KAAK,KAAK,CAAC,CAAC,EAAE;MAChB;IACF;IACA,MAAME,KAAK,GAAGN,aAAa,CAACI,KAAK,CAAC;IAClCxC,aAAa,CAAC0C,KAAK,CAAC9G,KAAK,CAACiE,KAAK,CAAC;IAChC,IAAIV,QAAQ,EAAE;MACZA,QAAQ,CAAC4C,KAAK,EAAEW,KAAK,CAAC;IACxB;EACF,CAAC;EACD,MAAMG,eAAe,GAAGH,KAAK,IAAIX,KAAK,IAAI;IACxC,IAAIe,QAAQ;;IAEZ;IACA,IAAI,CAACf,KAAK,CAACgB,aAAa,CAACC,YAAY,CAAC,UAAU,CAAC,EAAE;MACjD;IACF;IACA,IAAI/G,QAAQ,EAAE;MACZ6G,QAAQ,GAAGG,KAAK,CAACC,OAAO,CAACrD,KAAK,CAAC,GAAGA,KAAK,CAACsD,KAAK,EAAE,GAAG,EAAE;MACpD,MAAMC,SAAS,GAAGvD,KAAK,CAAC8C,OAAO,CAACD,KAAK,CAAC9G,KAAK,CAACiE,KAAK,CAAC;MAClD,IAAIuD,SAAS,KAAK,CAAC,CAAC,EAAE;QACpBN,QAAQ,CAACO,IAAI,CAACX,KAAK,CAAC9G,KAAK,CAACiE,KAAK,CAAC;MAClC,CAAC,MAAM;QACLiD,QAAQ,CAACQ,MAAM,CAACF,SAAS,EAAE,CAAC,CAAC;MAC/B;IACF,CAAC,MAAM;MACLN,QAAQ,GAAGJ,KAAK,CAAC9G,KAAK,CAACiE,KAAK;IAC9B;IACA,IAAI6C,KAAK,CAAC9G,KAAK,CAAC2H,OAAO,EAAE;MACvBb,KAAK,CAAC9G,KAAK,CAAC2H,OAAO,CAACxB,KAAK,CAAC;IAC5B;IACA,IAAIlC,KAAK,KAAKiD,QAAQ,EAAE;MACtB9C,aAAa,CAAC8C,QAAQ,CAAC;MACvB,IAAI3D,QAAQ,EAAE;QACZ;QACA;QACA;QACA;QACA,MAAMqE,WAAW,GAAGzB,KAAK,CAACyB,WAAW,IAAIzB,KAAK;QAC9C,MAAM0B,WAAW,GAAG,IAAID,WAAW,CAACE,WAAW,CAACF,WAAW,CAACG,IAAI,EAAEH,WAAW,CAAC;QAC9EI,MAAM,CAACC,cAAc,CAACJ,WAAW,EAAE,QAAQ,EAAE;UAC3CK,QAAQ,EAAE,IAAI;UACdjE,KAAK,EAAE;YACLA,KAAK,EAAEiD,QAAQ;YACfrH;UACF;QACF,CAAC,CAAC;QACF0D,QAAQ,CAACsE,WAAW,EAAEf,KAAK,CAAC;MAC9B;IACF;IACA,IAAI,CAACzG,QAAQ,EAAE;MACb6F,MAAM,CAAC,KAAK,EAAEC,KAAK,CAAC;IACtB;EACF,CAAC;EACD,MAAMgC,aAAa,GAAGhC,KAAK,IAAI;IAC7B,IAAI,CAACvC,QAAQ,EAAE;MACb,MAAMwE,SAAS,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW;MAC9C;MACA;MACA,OAAO,CAAC;MACR,IAAIA,SAAS,CAACrB,OAAO,CAACZ,KAAK,CAACkC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;QACvClC,KAAK,CAACG,cAAc,EAAE;QACtBJ,MAAM,CAAC,IAAI,EAAEC,KAAK,CAAC;MACrB;IACF;EACF,CAAC;EACD,MAAMtF,IAAI,GAAG8D,WAAW,KAAK,IAAI,IAAIJ,SAAS;EAC9C,MAAM+D,UAAU,GAAGnC,KAAK,IAAI;IAC1B;IACA,IAAI,CAACtF,IAAI,IAAIyC,MAAM,EAAE;MACnB;MACA0E,MAAM,CAACC,cAAc,CAAC9B,KAAK,EAAE,QAAQ,EAAE;QACrC+B,QAAQ,EAAE,IAAI;QACdjE,KAAK,EAAE;UACLA,KAAK;UACLpE;QACF;MACF,CAAC,CAAC;MACFyD,MAAM,CAAC6C,KAAK,CAAC;IACf;EACF,CAAC;EACD,OAAOhC,KAAK,CAAC,cAAc,CAAC;EAC5B,IAAIpC,OAAO;EACX,IAAIwG,aAAa;EACjB,MAAMC,eAAe,GAAG,EAAE;EAC1B,IAAIC,cAAc,GAAG,KAAK;EAC1B,IAAIC,UAAU,GAAG,KAAK;;EAEtB;EACA,IAAIzJ,QAAQ,CAAC;IACXgF;EACF,CAAC,CAAC,IAAIjB,YAAY,EAAE;IAClB,IAAIa,WAAW,EAAE;MACf9B,OAAO,GAAG8B,WAAW,CAACI,KAAK,CAAC;IAC9B,CAAC,MAAM;MACLwE,cAAc,GAAG,IAAI;IACvB;EACF;EACA,MAAME,KAAK,GAAGnC,aAAa,CAACK,GAAG,CAAC,CAACC,KAAK,EAAEF,KAAK,EAAEgC,GAAG,KAAK;IACrD,IAAI,EAAE,aAAavK,KAAK,CAACwK,cAAc,CAAC/B,KAAK,CAAC,EAAE;MAC9C,OAAO,IAAI;IACb;IACA,IAAIgC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;MACzC,IAAI1K,UAAU,CAACwI,KAAK,CAAC,EAAE;QACrBmC,OAAO,CAACC,KAAK,CAAC,CAAC,iEAAiE,EAAE,sCAAsC,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC;MACvI;IACF;IACA,IAAIC,QAAQ;IACZ,IAAI/I,QAAQ,EAAE;MACZ,IAAI,CAACgH,KAAK,CAACC,OAAO,CAACrD,KAAK,CAAC,EAAE;QACzB,MAAM,IAAIoF,KAAK,CAACP,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,GAAI,iGAAgG,GAAG9K,sBAAsB,CAAC,CAAC,CAAC,CAAC;MACxL;MACAkL,QAAQ,GAAGnF,KAAK,CAACqF,IAAI,CAACC,CAAC,IAAI7H,cAAc,CAAC6H,CAAC,EAAEzC,KAAK,CAAC9G,KAAK,CAACiE,KAAK,CAAC,CAAC;MAChE,IAAImF,QAAQ,IAAIX,cAAc,EAAE;QAC9BD,eAAe,CAACf,IAAI,CAACX,KAAK,CAAC9G,KAAK,CAAC4C,QAAQ,CAAC;MAC5C;IACF,CAAC,MAAM;MACLwG,QAAQ,GAAG1H,cAAc,CAACuC,KAAK,EAAE6C,KAAK,CAAC9G,KAAK,CAACiE,KAAK,CAAC;MACnD,IAAImF,QAAQ,IAAIX,cAAc,EAAE;QAC9BF,aAAa,GAAGzB,KAAK,CAAC9G,KAAK,CAAC4C,QAAQ;MACtC;IACF;IACA,IAAIwG,QAAQ,EAAE;MACZV,UAAU,GAAG,IAAI;IACnB;IACA,IAAI5B,KAAK,CAAC9G,KAAK,CAACiE,KAAK,KAAKyB,SAAS,EAAE;MACnC,OAAO,aAAarH,KAAK,CAACmL,YAAY,CAAC1C,KAAK,EAAE;QAC5C,eAAe,EAAE,IAAI;QACrB2C,IAAI,EAAE;MACR,CAAC,CAAC;IACJ;IACA,MAAMC,wBAAwB,GAAG,MAAM;MACrC,IAAIzF,KAAK,EAAE;QACT,OAAOmF,QAAQ;MACjB;MACA,MAAMO,sBAAsB,GAAGf,GAAG,CAACgB,IAAI,CAACC,IAAI,IAAIA,IAAI,CAAC7J,KAAK,CAACiE,KAAK,KAAKyB,SAAS,IAAImE,IAAI,CAAC7J,KAAK,CAACmC,QAAQ,KAAK,IAAI,CAAC;MAC/G,IAAI2E,KAAK,KAAK6C,sBAAsB,EAAE;QACpC,OAAO,IAAI;MACb;MACA,OAAOP,QAAQ;IACjB,CAAC;IACD,OAAO,aAAa/K,KAAK,CAACmL,YAAY,CAAC1C,KAAK,EAAE;MAC5C,eAAe,EAAEsC,QAAQ,GAAG,MAAM,GAAG,OAAO;MAC5CzB,OAAO,EAAEV,eAAe,CAACH,KAAK,CAAC;MAC/BgD,OAAO,EAAE3D,KAAK,IAAI;QAChB,IAAIA,KAAK,CAACkC,GAAG,KAAK,GAAG,EAAE;UACrB;UACA;UACA;UACAlC,KAAK,CAACG,cAAc,EAAE;QACxB;QACA,IAAIQ,KAAK,CAAC9G,KAAK,CAAC8J,OAAO,EAAE;UACvBhD,KAAK,CAAC9G,KAAK,CAAC8J,OAAO,CAAC3D,KAAK,CAAC;QAC5B;MACF,CAAC;MACDsD,IAAI,EAAE,QAAQ;MACdL,QAAQ,EAAER,GAAG,CAAC,CAAC,CAAC,CAAC5I,KAAK,CAACiE,KAAK,KAAKyB,SAAS,IAAIkD,GAAG,CAAC,CAAC,CAAC,CAAC5I,KAAK,CAACmC,QAAQ,KAAK,IAAI,GAAGuH,wBAAwB,EAAE,GAAGN,QAAQ;MACpHnF,KAAK,EAAEyB,SAAS;MAChB;MACA,YAAY,EAAEoB,KAAK,CAAC9G,KAAK,CAACiE,KAAK,CAAC;IAClC,CAAC,CAAC;EACJ,CAAC,CAAC;;EAEF,IAAI6E,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IACzC;IACA3K,KAAK,CAACmH,SAAS,CAAC,MAAM;MACpB,IAAI,CAACkD,UAAU,IAAI,CAACrI,QAAQ,IAAI4D,KAAK,KAAK,EAAE,EAAE;QAC5C,MAAM8F,MAAM,GAAGvD,aAAa,CAACK,GAAG,CAACC,KAAK,IAAIA,KAAK,CAAC9G,KAAK,CAACiE,KAAK,CAAC;QAC5DgF,OAAO,CAACe,IAAI,CAAC,CAAE,kDAAiD/F,KAAM,qBAAoBpE,IAAI,GAAI,UAASA,IAAK,KAAI,GAAG,EAAG,YAAW,EAAE,6EAA6E,EAAG,4BAA2BkK,MAAM,CAACE,MAAM,CAACC,CAAC,IAAIA,CAAC,IAAI,IAAI,CAAC,CAACrD,GAAG,CAACqD,CAAC,IAAK,KAAIA,CAAE,IAAG,CAAC,CAACf,IAAI,CAAC,IAAI,CAAC,IAAI,IAAK,GAAE,CAAC,CAACA,IAAI,CAAC,IAAI,CAAC,CAAC;MACzU;IACF,CAAC,EAAE,CAACT,UAAU,EAAElC,aAAa,EAAEnG,QAAQ,EAAER,IAAI,EAAEoE,KAAK,CAAC,CAAC;EACxD;EACA,IAAIwE,cAAc,EAAE;IAClB,IAAIpI,QAAQ,EAAE;MACZ,IAAImI,eAAe,CAAC2B,MAAM,KAAK,CAAC,EAAE;QAChCpI,OAAO,GAAG,IAAI;MAChB,CAAC,MAAM;QACLA,OAAO,GAAGyG,eAAe,CAAC4B,MAAM,CAAC,CAACC,MAAM,EAAEvD,KAAK,EAAEF,KAAK,KAAK;UACzDyD,MAAM,CAAC5C,IAAI,CAACX,KAAK,CAAC;UAClB,IAAIF,KAAK,GAAG4B,eAAe,CAAC2B,MAAM,GAAG,CAAC,EAAE;YACtCE,MAAM,CAAC5C,IAAI,CAAC,IAAI,CAAC;UACnB;UACA,OAAO4C,MAAM;QACf,CAAC,EAAE,EAAE,CAAC;MACR;IACF,CAAC,MAAM;MACLtI,OAAO,GAAGwG,aAAa;IACzB;EACF;;EAEA;EACA,IAAI+B,YAAY,GAAGtF,iBAAiB;EACpC,IAAI,CAACrC,SAAS,IAAIoC,gBAAgB,IAAIJ,WAAW,EAAE;IACjD2F,YAAY,GAAG3F,WAAW,CAACc,WAAW;EACxC;EACA,IAAI1B,QAAQ;EACZ,IAAI,OAAOC,YAAY,KAAK,WAAW,EAAE;IACvCD,QAAQ,GAAGC,YAAY;EACzB,CAAC,MAAM;IACLD,QAAQ,GAAG5B,QAAQ,GAAG,IAAI,GAAG,CAAC;EAChC;EACA,MAAMoI,QAAQ,GAAGzG,kBAAkB,CAAC0G,EAAE,KAAK3K,IAAI,GAAI,wBAAuBA,IAAK,EAAC,GAAG6F,SAAS,CAAC;EAC7F,MAAMxF,UAAU,GAAGnC,QAAQ,CAAC,CAAC,CAAC,EAAEiC,KAAK,EAAE;IACrCI,OAAO;IACP6D,KAAK;IACLpD;EACF,CAAC,CAAC;EACF,MAAMqB,OAAO,GAAGD,iBAAiB,CAAC/B,UAAU,CAAC;EAC7C,OAAO,aAAaP,KAAK,CAACtB,KAAK,CAACoM,QAAQ,EAAE;IACxC7H,QAAQ,EAAE,CAAC,aAAanD,IAAI,CAACG,YAAY,EAAE7B,QAAQ,CAAC;MAClDwE,GAAG,EAAE4C,gBAAgB;MACrBpB,QAAQ,EAAEA,QAAQ;MAClB0F,IAAI,EAAE,QAAQ;MACd,eAAe,EAAEtH,QAAQ,GAAG,MAAM,GAAGuD,SAAS;MAC9C,eAAe,EAAE7E,IAAI,GAAG,MAAM,GAAG,OAAO;MACxC,eAAe,EAAE,SAAS;MAC1B,YAAY,EAAE4B,SAAS;MACvB,iBAAiB,EAAE,CAACW,OAAO,EAAEmH,QAAQ,CAAC,CAACN,MAAM,CAACS,OAAO,CAAC,CAACvB,IAAI,CAAC,GAAG,CAAC,IAAIzD,SAAS;MAC7E,kBAAkB,EAAElD,eAAe;MACnCmI,SAAS,EAAExC,aAAa;MACxByC,WAAW,EAAEzI,QAAQ,IAAIyB,QAAQ,GAAG,IAAI,GAAGwC,eAAe;MAC1D9C,MAAM,EAAEgF,UAAU;MAClB7E,OAAO,EAAEA;IACX,CAAC,EAAEK,kBAAkB,EAAE;MACrB5D,UAAU,EAAEA,UAAU;MACtB2C,SAAS,EAAErE,IAAI,CAACsF,kBAAkB,CAACjB,SAAS,EAAEX,OAAO,CAAC/B,MAAM,EAAE0C,SAAS;MACvE;MAAA;;MAEA2H,EAAE,EAAED,QAAQ;MACZ3H,QAAQ,EAAEd,OAAO,CAACC,OAAO,CAAC;MAAG;MAC7B5D,KAAK,KAAKA,KAAK,GAAG,aAAasB,IAAI,CAAC,MAAM,EAAE;QAC1CoD,SAAS,EAAE,aAAa;QACxBD,QAAQ,EAAE;MACZ,CAAC,CAAC,CAAC,GAAGb;IACR,CAAC,CAAC,CAAC,EAAE,aAAatC,IAAI,CAACsB,iBAAiB,EAAEhD,QAAQ,CAAC;MACjDkG,KAAK,EAAEoD,KAAK,CAACC,OAAO,CAACrD,KAAK,CAAC,GAAGA,KAAK,CAACkF,IAAI,CAAC,GAAG,CAAC,GAAGlF,KAAK;MACrDpE,IAAI,EAAEA,IAAI;MACV0C,GAAG,EAAEW,QAAQ;MACb,aAAa,EAAE,IAAI;MACnBK,QAAQ,EAAEoD,YAAY;MACtB5C,QAAQ,EAAE,CAAC,CAAC;MACZ5B,QAAQ,EAAEA,QAAQ;MAClBU,SAAS,EAAEX,OAAO,CAAChB,WAAW;MAC9BwB,SAAS,EAAEA,SAAS;MACpBxC,UAAU,EAAEA;IACd,CAAC,EAAEiE,KAAK,CAAC,CAAC,EAAE,aAAa1E,IAAI,CAACkB,UAAU,EAAE;MACxCkK,EAAE,EAAE5H,aAAa;MACjBJ,SAAS,EAAEX,OAAO,CAACtB,IAAI;MACvBV,UAAU,EAAEA;IACd,CAAC,CAAC,EAAE,aAAaT,IAAI,CAACX,IAAI,EAAEf,QAAQ,CAAC;MACnCyM,EAAE,EAAG,QAAO3K,IAAI,IAAI,EAAG,EAAC;MACxBiL,QAAQ,EAAEnG,WAAW;MACrB9D,IAAI,EAAEA,IAAI;MACV2C,OAAO,EAAE+C,WAAW;MACpBwE,YAAY,EAAE;QACZC,QAAQ,EAAE,QAAQ;QAClBC,UAAU,EAAE;MACd,CAAC;MACDC,eAAe,EAAE;QACfF,QAAQ,EAAE,KAAK;QACfC,UAAU,EAAE;MACd;IACF,CAAC,EAAE5H,SAAS,EAAE;MACZ8H,aAAa,EAAEpN,QAAQ,CAAC;QACtB,iBAAiB,EAAEqF,OAAO;QAC1BqG,IAAI,EAAE,SAAS;QACf2B,eAAe,EAAE;MACnB,CAAC,EAAE/H,SAAS,CAAC8H,aAAa,CAAC;MAC3BE,UAAU,EAAEtN,QAAQ,CAAC,CAAC,CAAC,EAAEsF,SAAS,CAACgI,UAAU,EAAE;QAC7CC,KAAK,EAAEvN,QAAQ,CAAC;UACdwN,QAAQ,EAAEjB;QACZ,CAAC,EAAEjH,SAAS,CAACgI,UAAU,IAAI,IAAI,GAAGhI,SAAS,CAACgI,UAAU,CAACC,KAAK,GAAG,IAAI;MACrE,CAAC,CAAC;MACF1I,QAAQ,EAAE+F;IACZ,CAAC,CAAC,CAAC;EACL,CAAC,CAAC;AACJ,CAAC,CAAC;AACFG,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,GAAG3G,WAAW,CAACmJ,SAAS,GAAG;EAC9D;AACF;AACA;EACE,kBAAkB,EAAEjN,SAAS,CAACkN,MAAM;EACpC;AACF;AACA;EACE,YAAY,EAAElN,SAAS,CAACkN,MAAM;EAC9B;AACF;AACA;EACE/I,SAAS,EAAEnE,SAAS,CAACmN,IAAI;EACzB;AACF;AACA;AACA;EACE/I,SAAS,EAAEpE,SAAS,CAACmN,IAAI;EACzB;AACF;AACA;AACA;EACE9I,QAAQ,EAAErE,SAAS,CAAC8G,IAAI;EACxB;AACF;AACA;AACA;EACEnD,OAAO,EAAE3D,SAAS,CAACoN,MAAM;EACzB;AACF;AACA;EACE9I,SAAS,EAAEtE,SAAS,CAACkN,MAAM;EAC3B;AACF;AACA;AACA;EACE3I,WAAW,EAAEvE,SAAS,CAACmN,IAAI;EAC3B;AACF;AACA;EACE3I,YAAY,EAAExE,SAAS,CAACqN,GAAG;EAC3B;AACF;AACA;EACEzJ,QAAQ,EAAE5D,SAAS,CAACmN,IAAI;EACxB;AACF;AACA;EACE1I,YAAY,EAAEzE,SAAS,CAACmN,IAAI;EAC5B;AACF;AACA;EACEzI,aAAa,EAAE1E,SAAS,CAACsN,WAAW,CAACC,UAAU;EAC/C;AACF;AACA;AACA;EACE5I,QAAQ,EAAEvE,OAAO;EACjB;AACF;AACA;AACA;EACEyE,OAAO,EAAE7E,SAAS,CAACkN,MAAM;EACzB;AACF;AACA;EACEpI,SAAS,EAAE9E,SAAS,CAACoN,MAAM;EAC3B;AACF;AACA;EACEtL,QAAQ,EAAE9B,SAAS,CAACmN,IAAI;EACxB;AACF;AACA;EACE7L,IAAI,EAAEtB,SAAS,CAACkN,MAAM;EACtB;AACF;AACA;EACEnI,MAAM,EAAE/E,SAAS,CAACwN,IAAI;EACtB;AACF;AACA;AACA;AACA;AACA;AACA;EACExI,QAAQ,EAAEhF,SAAS,CAACwN,IAAI;EACxB;AACF;AACA;AACA;AACA;AACA;EACEvI,OAAO,EAAEjF,SAAS,CAACwN,IAAI;EACvB;AACF;AACA;EACEtI,OAAO,EAAElF,SAAS,CAACwN,IAAI;EACvB;AACF;AACA;AACA;AACA;AACA;EACErI,MAAM,EAAEnF,SAAS,CAACwN,IAAI;EACtB;AACF;AACA;EACElL,IAAI,EAAEtC,SAAS,CAACmN,IAAI;EACpB;AACF;AACA;EACE9H,QAAQ,EAAErF,SAAS,CAACmN,IAAI;EACxB;AACF;AACA;AACA;AACA;AACA;EACE7H,WAAW,EAAEtF,SAAS,CAACwN,IAAI;EAC3B;AACF;AACA;EACEjI,kBAAkB,EAAEvF,SAAS,CAACoN,MAAM;EACpC;AACF;AACA;EACE5H,QAAQ,EAAExF,SAAS,CAACyN,SAAS,CAAC,CAACzN,SAAS,CAAC0N,MAAM,EAAE1N,SAAS,CAACkN,MAAM,CAAC,CAAC;EACnE;AACF;AACA;EACE1D,IAAI,EAAExJ,SAAS,CAACqN,GAAG;EACnB;AACF;AACA;EACE3H,KAAK,EAAE1F,SAAS,CAACqN,GAAG;EACpB;AACF;AACA;EACExL,OAAO,EAAE7B,SAAS,CAAC2N,KAAK,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC;AAC7D,CAAC,GAAG,KAAK,CAAC;AACV,eAAe7J,WAAW"},"metadata":{},"sourceType":"module"}